The present invention relates generally to computer workstations which are connected for information interchange with host or mainframe computer systems; more particularly, the invention relates to a method and apparatus for controlling scrolling on certain computer workstations by function key operation at the workstation without participation of the host processor to which the workstation is connected. Further, the invention relates to a method and apparatus which significantly improves overall response time for the presentation and operation of scrolling in systems wherein a host processor executes applications programs and is connected to a plurality of remote terminals.
Historically, operator interface with a mainframe computer system evolved from a single operator control console which was attached to the mainframe structure. The operator control console amounted to little more than a keyboard for enabling the operator generation of simple input commands, and a display screen for enabling the mainframe computer to present simple status messages to the operator. The evolution and expansion of this concept led to the development of multiple, limited-intelligence terminals, to enable a number of users to communicate with a mainframe system, wherein the multiple terminals were perhaps remotely positioned from one another, and from the mainframe system, but commonly connected to a controller, and the controller was connected to the mainframe computer system. However, the multiple terminal concept was a relatively low cost solution to enable multiple users to communicate with a mainframe computer system, but with limited intelligence contained within each terminal, so that the user communication was restricted to relatively simple input/output transfers.
The development of the stand-alone personal computer (PC) provided a high level of internal intelligence to enable a great many user interface functions to be added to the PC, with the result that the PC became a very "user friendly" device. Among the interface enhancements which were made possible by the PC development were enhanced cursor controls, scrolling, and windows. These enhancements greatly improve the computer's communication with a user.
The user friendly PC soon became adapted for communication with host computer systems, initially by connecting the PC to a controller, and by writing software to enable the PC to emulate a terminal with limited intelligence, normally connectable to the controller. Eventually the PC/mainframe workstation control interface was developed to enable a PC to communicate more or less directly with a host processor, wherein the independent intelligence contained within a PC could be used both to enhance the user interface with the host system and to independently execute software apart from the host system. A class of terminals evolved utilizing these concepts, which became known as "intelligent" terminals, and the previously evolved, limited-intelligence terminals became known as "dumb" terminals. By virtue of the widely varying internal intelligence of these two types of terminals, the capabilities and rules for using the terminals also became widely varied. However, when either of the aforementioned types of terminals are connected to a host processor, the host processor typically dictates overall system operation through execution of various application programs. The application programming interfaces provide the capability to present scrollable panel data at each of the connected terminals, which enables an application program to define more data to the user than will fit on the screen at one time, and also provides the user with the ability to look at data before or after the data currently presented on the screen.
There are two techniques for scrolling data; cursor-sensitive and cursor-independent scrolling. Cursor-sensitive scrolling is invoked by the user when an arrow key is depressed on the keyboard when the cursor is on the top or bottom of the scrollable panel area. Cursor-independent scrolling is invoked by the user by depressing a scroll function key. The present invention relates to cursor-independent scrolling techniques, and more particularly to a method and apparatus for local control of cursor-independent scrolling without interaction with the host processor.
In the prior art, the host applications program or its display interface program manages the scrolling of display panel data. Whenever the user depresses a cursor-independent scroll key, an interrupt is generated to the host processor, to enable the host processor to reconfigure the panel display and to retransmit a new data stream incorporating the scrolled panel information. In typical prior art systems this interrupt creates a 1-2 second delay in user response time while the panel is being retransmitted and rewritten with new data in the scrollable area. If the user finds it necessary to activate the scroll key several times before finding the data that is being sought, each scroll key action creates a new interrupt and new transmission, thereby increasing the amount of response time delay. In a system utilizing a large number of remote terminals the problem becomes further complicated by virtue of the multiplication of response time delays which may potentially be caused by users at a plurality of terminals activating scrolling key commands at the same time. Windowing further complicates the problem by causing more scrolling requests, due to the decreased area in which to present scrollable data. Therefore, in larger systems, the response time delay becomes extremely bothersome to the user and results in significantly reduced efficiency in the user's ability to interact with the system.
In any typical prior art system utilizing a host processor and workstations, wherein the workstations are utilized for user interaction and access and the host processor is utilized for running applications programs, the host processor provides certain fundamental information. For example, the host processor may generate a data stream containing information to be displayed on a workstation screen, and information for controlling the presentation and position of the data on the screen. The data stream generally does not convey any logical intelligence, i.e. information to enable the workstation to independently control and manipulate subsequent screen display panels as a consequence of its interfacing with the user. The control and manipulation of each screen display panel is typically generated by the host processor, by transmitting a new data stream for each panel, wherein each data stream contains new presentation and position information. In the case of a programmable workstation (PWS), the host processor data stream is sent directly to the workstation and is processed internally in the workstation, which itself contains sufficient internal memory and program data to directly control the interaction with the display screen and keyboard. In the case of the DWS, the host processor data stream is sent to a workstation controller (WSC), and the WSC provides the internal memory and control for directly controlling the display screen of the DWS. In either case, the host processor-constructed data stream is received by a workstation control interface (hardware and/or software), and the workstation control interface processes the data stream. The workstation controller may poll the workstation to determine whether a keystroke should be recognized or whether any of a predetermined number of commands have been accepted.
Although a PWS terminal is of considerably more sophisticated design than a DWS terminal, when it is used in an environment where a host processor executes applications programs and merely utilizes the PWS terminal for operator/user interface, the PWS terminal suffers from most of the same limitations as a DWS terminal. For example, each time a display panel is changed on the screen of either type of terminal, the host processor creates the panel description, and presentation, and constructs a data stream for transmission to the terminal. A typical data stream transmission may include 2,000 bytes of information, more or less, and may require a transmission time of at least several seconds, in addition to the processing time required for creating and developing the data stream. In a system involving a considerable number of such terminals, the processing load and transmission time constraints are cumulative, leading to significant reduction in overall system performance. The present invention deals with a method for improving that performance with respect to both PWS terminals and DWS terminals. However, for convenience herein, reference will be made primarily to DWS terminals throughout, it being understood that the uses and advantages of the invention are equally applicable to both types of terminals. Where reference is made herein to workstation controllers (WSC), it should be understood that such controllers are associated with DWS terminals, and PWS terminals do not utilize workstation controllers. PWS terminals communicate directly with the host processor through suitable I/O communications controls, but PWS devices have internal logic which effectively performs the same workstation control interface functions as are performed by workstation controllers.